package com.example.administrator.newjiajiesong.network.http;


import com.example.administrator.newjiajiesong.main.my.entity.TreeUserEntity;
import com.example.administrator.newjiajiesong.main.my.entity.UserHeadEntity;
import com.example.administrator.newjiajiesong.test.CommunityMessageBean;
import com.example.administrator.newjiajiesong.test.getstore;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

/**
 * MyApi
 * (๑• . •๑)
 * 类描述:
 * Created by LeiXiaoXing on 2017/4/21 13:53
 */

public class MyApi {

    //public static final String BASE_URL = "http://test.sms0928.com/";//测试
    // public static final String BASE_URL = "http://life.sms0928.com/";//正式
    //public static final String BASE_URL = "http://test.fssmsjy.com/";//测试
    public static final String BASE_URL = "http://life.fssmsjy.com/";//正式

    public static String URiBase = "http://www.fenghoo.cn";// 蜂狐商户版线上

    /**
     * 网络接口前缀
     */
    //public static final String PREFIX = BASE_URL + "api/";
    public static final String PREFIX = URiBase;

    public interface Api {

        /**
         * 获取验证码
         *
         * @param phone 手机号码
         * @param type  请求类型(1=注册 2=忘记密码 3=修改手机号码 4=登录)
         * @return
         */
        @POST("pin")
        @FormUrlEncoded
        Observable<ResponseBean> pin(@Field("phone") String phone
                , @Field("type") int type);

        /**
         * 登录
         *
         * @param phone    登录手机号码
         * @param password 登录密码
         * @param pinCode  登录验证码
         * @param type     请求类型(1=注册 2=忘记密码 3=修改手机号码 4=登录)
         * @return
         */
        @POST("login")
        @FormUrlEncoded
        Observable<ResponseBean<TreeUserEntity>> login(@Field("phone") String phone
                , @Field("password") String password
                , @Field("pinCode") String pinCode
                , @Field("type") int type);

        /**
         * 注册
         *
         * @param phone        注册手机号码
         * @param password     登录密码
         * @param rePassword   确认登录密码
         * @param pinCode      验证码
         * @param type         请求类型(1=注册 2=忘记密码 3=修改手机号码 4=登录)
         * @param recommend_id 推荐人学号
         * @return
         */
        @POST("register")
        @FormUrlEncoded
        Observable<ResponseBean<TreeUserEntity>> register(@Field("phone") String phone
                , @Field("password") String password
                , @Field("rePassword") String rePassword
                , @Field("pinCode") String pinCode
                , @Field("type") int type
                , @Field("recommend_id") String recommend_id);

        /**
         * 忘记密码
         *
         * @param id         用户标识 id
         * @param phone      用户手机号码
         * @param password   新密码
         * @param rePassword 确认新密码
         * @param pinCode    验证码
         * @param type       修改密码,该字段值为2
         * @return
         */
        @POST("user/pwd")
        @FormUrlEncoded
        Observable<ResponseBean> userPwd(@Field("id") String id
                , @Field("phone") String phone
                , @Field("password") String password
                , @Field("rePassword") String rePassword
                , @Field("pinCode") String pinCode
                , @Field("type") int type);


        @POST("user/edit")
        @FormUrlEncoded
        Observable<ResponseBean> userEidt(@Field("id") String id, @FieldMap Map<String, String> params);


        @POST("/device/DevOperat/getStore")
        @FormUrlEncoded
        Observable<ResponseBean<getstore>> getStore(@Field("uid") String uid);



        @POST("groupMsg/list")
        @FormUrlEncoded
        Observable<CommunityMessageBean> communityMessages(@Field("user_id") String user_id
                );
    }

}
